package com.health.system.service.system;

import java.util.*;

import com.health.system.model.system.User;

import cn.org.rapid_framework.page.Page;
import cn.org.rapid_framework.page.PageRequest;

/**
 * <p>Title: 系统 操作员 业务处理层 </p>
 * <p>Description: spring事务实现层,调用Dao层取数据.健康通 </p>
 * Copyright: Copyright (c) 2011-03 
 * Company: 
 * 
 * @author 
 * @version 1.0
 */

public interface UserManager {

	User getById(java.lang.String id);

	void save(User u);

	void update(User u);

	//void update(User u, String sort);

	void updateByUserName(User u);

	void removeById(java.lang.String id);
	
	Boolean removeByIdArry(User u);

	Page findByPageRequest(PageRequest<Map> q);

	void updatepassword(java.lang.String id, java.lang.String password);
	
	/**
	* <p>无条件查询所有数据<br> 
	* @return List 
	* @author Kingter
	*/
	List findAll();
	
	/**
	* <p>按Map查询返回List<br> 
	* @param Map map
	* @return List 
	* @author Kingter
	*/
	List findList(Map map);

	/**
	 * @param name
	 *            用户名
	 * @return 用户对象
	 */
	User getUserByName(String name);

	/**
	 * @param java.util.Map map
	 *  String username          用户名
	 *  String organcode         机构代码
	 * @return 用户对象
	 */
	User getUserByMap(java.util.Map<String, String> map);
	

	/**
	 * @author pch 2010.6.10
	 * @param userName
	 *            用户名
	 * @return 用户所属角色组
	 */
	List getRoleByUserName(String userName);

	/**
	 * @author pch 2010.7.10
	 * @param userName
	 *            用户名
	 * @return 用户所属角色组及组名
	 */
	List getRoleRoleNameByUserName(String userName);




	/**
	 * 根据用户名更新用户登录次数
	 * 
	 * @param userName
	 *            用户名
	 */
	void updateLogincountByUserName(String userName);
	
	/**
	 * 操作员 修改 个人信息
	 * @param u User
	 */
	void personal(User u);
	
	/**
	 * <p>查询操作角色集合中,最大权限的角色值</p>
	 * @param String id 操作员ID
	 * @return 操作员拥有的最大权限的角色ID
	 * @author 鲍忠启
	 */
	String getUserMaxRoleId(String id);
}
